package top.magicpotato.fast.quartz.annotation;

import top.magicpotato.fast.quartz.enums.MisfireEnum;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * 此注解标记的方法 将会被 quartz 调度器执行
 * 注意：被标注的方法必须是 public void 且不能待遇参数
 *
 * @author ycl
 */
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
public @interface QuartzScheduled {

    /**
     * cron 表达式
     *
     * @return cron
     */
    String cron();

    /**
     * 任务名 默认 方法名
     * 该值通常不需要指定
     *
     * @return name
     */
    String name() default "";

    /**
     * 任务组 默认 方法所在类名
     * 该值通常不需要指定
     *
     * @return group
     */
    String group() default "";

    /**
     * 补救措施
     *
     * @return
     */
    MisfireEnum misfire() default MisfireEnum.NONE;
}
